<?php
namespace app\http;

use GatewayWorker\Lib\Gateway;
use Workerman\Worker;
use think\Db;
class Events
{
	//没有找到设置 选项，请去config文件夹里面去设置
	/**
	 * onWorkerStart 事件回调
	 * 当businessWorker进程启动时触发。每个进程生命周期内都只会触发一次
	 *
	 * @access public
	 * @param  \Workerman\Worker    $businessWorker
	 * @return void
	 */
	public static function onWorkerStart(Worker $businessWorker)
	{
	  
	}
	
	/**
	 * onConnect 事件回调
	 * 当客户端连接上gateway进程时(TCP三次握手完毕时)触发
	 *
	 * @access public
	 * @param  int       $client_id
	 * @return void
	 */
	public static function onConnect($client_id)
	{
	    Gateway::sendToCurrentClient("Your client_id is $client_id");
	}
	
	/**
	 * onWebSocketConnect 事件回调
	 * 当客户端连接上gateway完成websocket握手时触发
	 *
	 * @param  integer  $client_id 断开连接的客户端client_id
	 * @param  mixed    $data
	 * @return void
	 */
	public static function onWebSocketConnect($client_id, $data)
	{
	  //  var_export($data);
	}
	
	/**
	 * onMessage 事件回调
	 * 当客户端发来数据(Gateway进程收到数据)后触发
	 *
	 * @access public
	 * @param  int       $client_id
	 * @param  mixed     $data
	 * @return void
	 */
	public static function onMessage($client_id, $data)
	{
	    Gateway::sendToAll($data.'555555');
	}
	
	/**
	 * onClose 事件回调 当用户断开连接时触发的方法
	 *
	 * @param  integer $client_id 断开连接的客户端client_id
	 * @return void
	 */
	public static function onClose($client_id)
	{
	    GateWay::sendToAll("client[$client_id] logout\n");
	}
	
	/**
	 * onWorkerStop 事件回调
	 * 当businessWorker进程退出时触发。每个进程生命周期内都只会触发一次。
	 *
	 * @param  \Workerman\Worker    $businessWorker
	 * @return void
	 */
	public static function onWorkerStop(Worker $businessWorker)
	{
	    echo "WorkerStop\n";
	}
}

